Many software developers build their applications and services from individual software components collectively referred to as components. Components consist of the compiled programming code that contains classes. The components are coded by a developer to provide a defined set of services to clients. Within an application there may be hundreds, or even thousands, of separate components. Additionally, these components may be contained in many different locations within the same program.
Interactive applications typically involve multiple nested controls and/or documents. The set of services available or desirable at any particular point of control hierarchy varies. Functionality of services can vary too. What is needed is a way to leverage the means of definition of control hierarchy to define the set of available services.